With most computing devices and applications, it is desirable to try to reduce the amount of manual input from a user. One way to reduce manual input is to provide a user interface that displays words, phrases or other input strings that the computing device predicts a user is trying to enter. User input can be received, for example, through a soft keyboard on a touch screen of a mobile device, through a hardware keyboard or similar input device, or natural user interface such as a speech recognition engine. As the user input is received, a predictive input engine can generate candidate words and phrases or other strings for selection by the user. The user can select a candidate word or phrase instead of completing or correcting an entered string.
Applications such as electronic mail, search interfaces, word processing and the like can provide such a predictive input interface. On mobile devices, with touch keyboards or hardware keyboards, such prediction allows a user to enter input quickly. On desktop devices, such prediction can improve user productivity.
It can be a challenge to provide a satisfactory user experience using predictive inputs. Some predictive input engines present a list of candidates that are sorted based on frequency of use of the input string in an input history. Some predictive input engines also present multiple phrases that begin with the input string. These techniques often do not provide a reliably acceptable user experience. In some cases, the most frequent terms in the input history are not a good prediction of user intent. In some cases, multiple similar, yet undesired, terms are presented to a user. Instead of improving productivity, such predictive inputs can be distracting or reduce productivity.